As digital communication becomes more commonplace, the need for securing the associated communication channels becomes increasingly more important. For example, current technologies allow a user to remotely access bank accounts, medical data, and other private and sensitive information.
Cryptology has been widely used to provide secure digital communication. Cryptology generally relates to the enciphering (or encrypting) and deciphering (decrypting) of messages. The encryption and decryption uses some secret information (such as a key). In different encryption methods, a single key or multiple keys may be used for encryption and decryption.
One commonly used multiple key cryptosystem is a public-key encryption system. In a public-key system, a sender wishing to send an encrypted message to a recipient obtains an authenticated public key for the recipient that is generated using a private key. As the name implies, the public key can be available from public sources. Moreover, to avoid an impersonation attack, the public key is often authenticated. The public-key authentication may be made by a technique such as exchanging keys over a trusted channel, using a trusted public file, using an on-line trusted server, or using an off-line server and certificates.
After obtaining the authenticated public key, the sender encrypts an original message with the public key and generates a ciphertext. The intended recipient then utilizes the private key to decrypt the ciphertext to extract the original message. Decrypting the ciphertext without access to the private key is believed to be infeasible. Accordingly, only a party that has access to the private key may successfully decrypt the ciphertext.
One significant advantage of public-key systems over symmetric cryptosystems (such as stream or block ciphers) is that in two-party communications, only the private key needs to be kept secret (whereas in symmetric cryptosystems, the key is kept secret at both ends).
A current public-key encryption system utilizes certain elliptic curves (ECs) over a finite field. A pair of published values derived from an elliptic curve is utilized as a public key (including points on the curve and their corresponding public key which is generated by a simple multiplication (i.e., integer multiplication) on the curve). Verification is done using a bilinear pairing on the curve.
Generally, elliptic curves are believed to provide encryption systems with relatively lower communication requirements than traditional systems such as RSA (Rivest, Shamir, and Adleman public key encryption technology), while maintaining similar security levels.
An issue with the current public-key encryption systems is that none has been proven to be secure. As a result, the security of current public-key encryption systems is presumed based on the difficulty of a set of number-theoretic problems.
Accordingly, public-key encryption systems are desired which provide additional security.